home *** CD-ROM | disk | FTP | other *** search
- /*
- File: CDROMDriveCheck.c
-
- What's this?
- An MPW c tool that checks to see which SCSI IDs are AppleCD SC drives. It
- makes a status call(97) to the AppleCD SC driver (only works with this
- driver). On exit from the status call, the byte at csParam+1 contains a
- bit field with bits 7 - 0 corresponding to SCSI IDs 7 - 0. That is, a
- value of 10000010 means there are two AppleCD SCs attached, with SCSI
- IDs 7 and 1.
-
- Code notes:
- As the Blue Öyster Cult says, I'm making a career of evil: the refnum is
- hard-coded, which would cause Clarus to commence to bitin' on my kneecaps
- (dogcows aren't very tall) were s/he to find out.
-
- Further references:
- Apple CD SC™ Developers Guide, Revised Edition, Macintosh CD-ROM device
- driver status calls section. It's available from APDA.
-
- Mark Baumwell 4/1/92
-
- */
-
- #include <types.h>
- #include <stdio.h>
- #include <files.h>
- #include <osutils.h>
- #include <strings.h>
- #include <devices.h>
- #include <sane.h>
-
- main()
-
- {
- CntrlParam
- pb;
-
- OSErr
- err;
-
- /*Debugger();*/
-
- pb.ioCompletion = nil;
- pb.ioVRefNum = 1;
- pb.ioCRefNum = -39; /*Don't hard code refnum!!!*/
- pb.ioNamePtr = nil;
- pb.csCode = 97; // checks bit for a CD ROM
-
- err = PBStatus ((ParmBlkPtr) &pb, false);
- if (err == noErr)
- {
- char byte2; /*in c, char is an 8 bit value*/
- byte2 = ((char*) pb.csParam)[1];
- printf ("the csParam (in decimal) = %i\n",(short)byte2);
- }
- else
- {
- printf ("error = %i\n",err);
- }
- }
-